
$(function() {
    let appId = $('#appId').val();
    showApproval(appId)
});

function showApproval(appId){
    $.ajax({
        url : "/approval/query/getApproval/"+appId,
        type : "get",
        success : function(r) {
            loadApprovalLines(appId);
            $(".fixed-table-loading").remove();
            $("#appIdSpan").text(appId);
            $("#detailTopTitle").text(r.title);
            $("#detailAuthor").text(r.createUserNm+'/'+r.createUserJob);
            $("#detailTime").text(r.createTime);
            $("#selected").show();
            $(".detailBody").show();
        }
    });
}

function loadApprovalLines(appId) {
    $('#approvalLinesTable')
        .bootstrapTable(
            {
                method : 'get', // 服务器数据的请求方式 get or post
                url : '/approval/query/listLines', // 服务器数据的加载地址
                cache: false,
                //	showRefresh : true,
                //	showToggle : true,
                locale: "zh-CN",
                //locale: "en-US",
                //locale: "ko-KR",
                iconSize : 'outline',
                toolbar : '#exampleToolbar',
                striped : false, // 设置为true会有隔行变色效果
                dataType : "json", // 服务器返回的数据类型
                pagination : false, // 设置为true会在底部显示分页条
                // queryParamsType : "limit",
                // //设置为limit则会发送符合RESTFull格式的参数
                singleSelect : false, // 设置为true将禁止多选
                // contentType : "application/x-www-form-urlencoded",
                // //发送到服务器的数据编码类型
                //search : true, // 是否显示搜索框
                showColumns : false, // 是否显示内容下拉框（选择显示的列）
                sidePagination : "server",
                uniqueId: 'appLineId',
                queryParams : function(params) {
                    return {
                        //说明：传入后台的参数包括offset开始索引，limit步长，sort排序列，order：desc或者,以及所有列的键值对
                        appId : appId,
                        orderBy:'seq'
                    };
                },
                onLoadSuccess:function(data) {
                    debugger
                    if(data.code == 500){
                        layer.msg(data.msg);
                        return;
                    }
                    let item = data.list;
                    for(let index = 0;index< item.length;index++) {
                        if(item[index].receiptTime != null){
                            let agentString = item[index].agent == null||item[index].agent === '' ||  item[index].status===0
                                ? ''
                                : item[index].status === 5 ? ''
                                    : '[Proxy approval] '+item[index].receiverName+'/'+item[index].receiverJob
                                    + ' <i class="fa fa-long-arrow-right" aria-hidden="true"></i> '
                                    + item[index].agent.agentInfo +'&nbsp'+ '<br/>';

                            let remarkString = item[index].remark == null||item[index].remark === '' ? '' : item[index].remark+'&nbsp';

                            if(agentString!=='' || remarkString !==''){
                                $('#approvalLinesTable').bootstrapTable('insertRow', {index: index+1, row: {
                                        seq : index,
                                        handleType:item[index].handleType,
                                        handleTypeName : item[index].handleTypeName,
                                        receiverName : agentString + remarkString
                                    }
                                });
                            }
                        }
                    }
                    for(let index = 0;index< item.length;index++) {
                        if(item[index].receiptTime != null){
                            let agentString = item[index].agent == null||item[index].agent === '' || item[index].status === 0
                                ? ''
                                : item[index].status === 5 ? '' :'not null';

                            let remarkString = item[index].remark == null||item[index].remark === '' ? '' : 'not null';

                            if(agentString!=='' || remarkString !==''){
                                //合并列
                                $('#approvalLinesTable').bootstrapTable('mergeCells', { index: index+1, field: 'receiverName', colspan: 7, rowspan: 1 });
                                //合并行
                                $('#approvalLinesTable').bootstrapTable('mergeCells', { index: index, field: 'seq', colspan: 1, rowspan: 2 });
                                $('#approvalLinesTable').bootstrapTable('mergeCells', { index: index, field: 'handleTypeName', colspan: 1, rowspan: 2 });
                            }
                        }
                    }
                },
                // //请求服务器数据时，你可以通过重写参数的方式添加一些额外的参数，例如 toolbar 中的参数 如果
                // queryParamsType = 'limit' ,返回参数必须包含
                // limit, offset, search, sort, order 否则, 需要包含:
                // pageSize, pageNumber, searchText, sortName,
                // sortOrder.
                // 返回false将会终止请求
                columns : [
                    {
                        field : 'appDetailId',
                        title : 'id',
                        visible: false
                    },
                    {
                        field : 'seq',
                        title : 'No.',
                        align : 'center',
                        valign : 'middle',
                        width: '30px',
                    },
                    {
                        field : 'handleTypeName',
                        title : 'Type',
                        width : '50px',
                        valign : 'middle',
                        cellStyle: function(value,row){
                            let color = '';
                            switch(row.handleType){
                                case 0://draft
                                    color = '#EFEFF0;';
                                    break;
                                case 1://approval
                                    color = '#CCE3F7;';
                                    break;
                                case 2://consent 4
                                    color = '#cfedf6;';
                                    break;
                                case 3:
                                    color = '#D0D7F0;';
                                    break;
                                case 4:
                                    color = '#cfedf6;';
                                    break;
                                case 7:
                                    color = '#CCE3F7;';
                                    break;
                                case 9://notification
                                    color = '#dadee0;';
                                    break;
                            }
                            return {
                                css : {
                                    'background-color' : color
                                }
                            };
                        },
                        formatter : function(value, row, index) {
                            switch(row.status){
                                case 1://同意
                                    switch(row.handleType){
                                        case 1://审批人
                                            value = 'Approved';
                                            break;
                                        case 2://协议人
                                            value = 'Consent';
                                            break;
                                        case 3://后批人
                                            value = 'Approved';
                                            break;
                                        case 4://平行合意人
                                            value = 'Parallel consent';
                                            break;
                                        case 7://平行审批人
                                            value = 'Parallel approved';
                                            break;
                                        case 9://
                                            value = 'Notification';
                                            break;
                                    }
                                    break;
                                case 2://驳回
                                    value = 'Reject';
                                    break;
                                case 3://特批
                                    value = 'Arbitrary decision';
                                    break;
                                case 5://自动审批
                                    switch(row.handleType){
                                        case 1://审批人
                                            value = 'Approval';
                                            break;
                                        case 2://协议人
                                            value = 'Consent';
                                            break;
                                        case 3://后批人
                                            value = 'Post approval';
                                            break;
                                        case 4://平行合意人
                                            value = 'Parallel consent';
                                            break;
                                        case 7://平行审批人
                                            value = 'Parallel approval';
                                            break;
                                        case 9://
                                            value = 'Notification';
                                            break;
                                    }
                                    break;
                            }
                            return value;
                        }
                    },
                    {
                        field : 'receiverName',
                        title : 'Name',
                        width: '130px',
                        cellStyle: function(value,row){
                            let color = '';
                            if(value.indexOf('&nbsp')>0){
                                switch(row.handleType){
                                    case 0://draft
                                        color = '#F7F7F7;';
                                        break;
                                    case 1://approval
                                        color = '#E5F1FB;';
                                        break;
                                    case 2://consent
                                        color = '#E7F6FA;';
                                        break;
                                    case 3://Post approval
                                        color = '#E7EBF7;';
                                        break;
                                    case 4://Parallel consent
                                        color = '#E7EBF7;';
                                        break;
                                    case 7://Parallel approval
                                        color = '#E7F6FA;';
                                        break;
                                    // case 9:
                                    //     color = '#E5F1FB;';
                                    //     break;
                                }
                            }
                            return {
                                css : {'background-color' :color}
                            }
                        },
                        formatter : function(value, row, index) {
                            if(value.indexOf('&nbsp') > 0){
                                return value;
                            }else{
                                let str = ''
                                empId = '';

                                if(row.agentUserId != null && row.status !==5 && row.status !==0 ){//是代理人审批的，且不是自动审批的或者未审批的
                                    str = row.agent.agentInfo;
                                    empId = row.agentUserId
                                }else{
                                    str = value+'/'+row.receiverJob;
                                    empId = row.receiverEpid
                                }
                                var e = '<a href="#" title=\''+str+'\'  onclick="showEmp(\'' + empId + '\')">'+str+'</a> ';
                                return e;
                            }
                        }
                    },
                    {
                        field : 'receiptTime',
                        title : 'Receipt date',
                        width : '100px',
                    },
                    {
                        field : 'readTime',
                        title : 'Read date',
                        width : '100px',
                    },
                    {
                        field : 'handleTime',
                        title : 'Processing date',
                        width : '100px',
                        formatter : function(value, row, index) {
                            if(value == null){
                                if(row.handleType == 9){
                                    value = row.readTime;
                                }
                            }

                            return value;
                        }
                    },
                    {
                        field : 'changeLineYn',
                        title : 'Change line',
                        width : '65px',
                        formatter : function(value, row, index) {
                            debugger
                            if(row.pathMdfyPmtYn != 'Y'){
                                value = 'Unauthorized';
                            }else{
                                if(row.changeLineYn != null && row.changeLineYn != ''){
                                    value = 'Change';
                                }
                            }
                            return value;
                        }
                    },
                    {
                        field : 'changeTextYn',
                        title : 'Change text',
                        width : '65px',
                        formatter : function(value, row, index) {
                            if(row.txtMdfyPmtYn != 'Y'){
                                value = 'Unauthorized';
                            }else{
                                if(row.changeTextYn != null && row.changeTextYn != ''){
                                    value = 'Change';
                                }
                            }

                            return value;
                        }
                    },
                    {
                        field : 'receiverDeptNm',
                        title : 'Team',
                        width : '50px',
                        formatter : function(value, row, index) {
                            debugger
                            if(row.receiverDeptNm == null){
                                value = 'HPPS';
                            }
                            return value
                        }
                    }
                ]
            });
}

